1. Field of the Invention
The present invention relates to a robot controlling device which controls a plurality of driving units which drive joints of a multi-joint robot main body.
2. Description of the Related Art
In a multi-axial multi-joint robot main body, it is necessary to operate the main body while synchronously changing angles of joints. If these joint angles are not synchronously changed, a track of an end point position of the multi-joint robot main body shifts. Therefore, a robot controlling device synchronously controls a plurality of driving units which drive the respective joints of the multi-joint robot main body (see JP-A-2004-524171 (Japanese Translation of PCT International Application)). It is to be noted that the calculation of each joint angle from a desired position posture of the multi-joint robot main body is called an inverse problem. Conversely, the calculation of the position posture of the multi-joint robot main body from the respective joint angles is called a forward problem. A field which handles these problems is called mechanics.
This conventional robot controlling device has a constitution in which two computers having different properties are combined. One of the computers is a general purpose computer, and the other computer is a real time computer. Moreover, the general purpose computer outputs, to the real time computer, a command indicating the desired position posture of the multi-joint robot main body. The real time computer can calculate operation command data where command values each indicating the joint angle of each driving unit are arranged in time series, on the basis of the input command based on inverse kinematics.
When the respective driving units are operated securely on schedule, it is necessary to synchronously output the calculated command values to the respective driving units of the multi-joint robot main body at predetermined time intervals (e.g. 5 ms).
However, the conventional robot controlling device cannot allow the multi-joint robot main body to perform any humanly dextrous operation. Specifically, a very high-level intricate algorithm is hidden in the humanly dextrous operation, and a robot control system has to perform calculations based on the high-level intricate algorithm. Moreover, even when the desired position posture of the multi-joint robot main body is simple, each joint angle of the multi-joint robot main body draws an intricate track. That is, calculation processing based on the inverse kinematics is intricate and requires much time as compared with calculation processing based on forward kinematics.
Therefore, when such intricate track calculations are performed, times required for the calculations become longer than synchronous times (time intervals to output the command values) sometimes. Moreover, the required times change often in accordance with calculation conditions. That is, the times required for the track calculations are indefinite. As the required time, there is supposed time of, for example, 1 s which is incomparably longer than the synchronous time (e.g. 5 ms).
However, in the robot controlling device disclosed in JP-A-2004-524171, it is necessary for the real time computer to execute intricate track calculations and synchronous operations in parallel. Therefore, the real time computer has to complete the track calculations within the synchronous times, but the times required for the track calculations are indefinite, so that the track calculations are not completed within the synchronous times sometimes. In such a case, it is necessary for the real time computer to perform the synchronous operations after completing all the track calculations, and the operation of the multi-joint robot main body has to be stopped until the track calculations end. In consequence, the multi-joint robot main body cannot perform any smooth operation, and the humanly dextrous operation cannot be realized.
To solve the problems, an object of the present invention is to provide a robot controlling device which can execute intricate track calculations and synchronous operations in parallel, even if the track calculations are intricate and times required for the calculations are indefinite.